import api from './index'

// 管理员相关API
export const adminAPI = {
  // 获取统计数据
  getStatistics: () => {
    return api.get('/admin/statistics')
  },

  // 学生管理
  students: {
    // 获取学生列表
    getList: (params) => {
      return api.get('/admin/students', { params })
    },
    // 获取学生详情
    getDetail: (id) => {
      return api.get(`/admin/students/${id}`)
    },
    // 创建学生
    create: (data) => {
      return api.post('/admin/students', data)
    },
    // 更新学生
    update: (id, data) => {
      return api.put(`/admin/students/${id}`, data)
    },
    // 删除学生
    delete: (id) => {
      return api.delete(`/admin/students/${id}`)
    },
    // 批量导入
    batchImport: (file) => {
      const formData = new FormData()
      formData.append('file', file)
      return api.post('/admin/students/batch-import', formData, {
        headers: { 'Content-Type': 'multipart/form-data' }
      })
    },
    // 导出学生数据
    export: (params) => {
      return api.get('/admin/students/export', { params, responseType: 'blob' })
    }
  },

  // 专业管理
  majors: {
    getList: () => {
      return api.get('/admin/majors')
    },
    create: (data) => {
      return api.post('/admin/majors', data)
    },
    update: (id, data) => {
      return api.put(`/admin/majors/${id}`, data)
    },
    delete: (id) => {
      return api.delete(`/admin/majors/${id}`)
    }
  },

  // 班级管理
  classes: {
    getList: (params) => {
      return api.get('/admin/classes', { params })
    },
    create: (data) => {
      return api.post('/admin/classes', data)
    },
    update: (id, data) => {
      return api.put(`/admin/classes/${id}`, data)
    },
    delete: (id) => {
      return api.delete(`/admin/classes/${id}`)
    }
  },

  // 宿舍管理
  dormitories: {
    // 获取楼宇列表
    getBuildings: () => {
      return api.get('/admin/dormitories/buildings')
    },
    // 获取宿舍列表
    getRooms: (params) => {
      return api.get('/admin/dormitories/rooms', { params })
    },
    // 创建宿舍
    createRoom: (data) => {
      return api.post('/admin/dormitories/rooms', data)
    },
    // 更新宿舍
    updateRoom: (id, data) => {
      return api.put(`/admin/dormitories/rooms/${id}`, data)
    },
    // 分配宿舍
    assignRoom: (data) => {
      return api.post('/admin/dormitories/assign', data)
    },
    // 获取入住记录
    getCheckInRecords: (params) => {
      return api.get('/admin/dormitories/check-in-records', { params })
    }
  },

  // 报到管理
  registration: {
    // 获取报到列表
    getList: (params) => {
      return api.get('/admin/registration', { params })
    },
    // 确认报到
    confirm: (studentId) => {
      return api.post(`/admin/registration/${studentId}/confirm`)
    },
    // 批量确认
    batchConfirm: (studentIds) => {
      return api.post('/admin/registration/batch-confirm', { studentIds })
    },
    // 获取报到统计
    getStatistics: () => {
      return api.get('/admin/registration/statistics')
    }
  },

  // 财务管理
  finance: {
    // 获取缴费项目
    getPaymentItems: () => {
      return api.get('/admin/finance/payment-items')
    },
    // 创建缴费项目
    createPaymentItem: (data) => {
      return api.post('/admin/finance/payment-items', data)
    },
    // 更新缴费项目
    updatePaymentItem: (id, data) => {
      return api.put(`/admin/finance/payment-items/${id}`, data)
    },
    // 删除缴费项目
    deletePaymentItem: (id) => {
      return api.delete(`/admin/finance/payment-items/${id}`)
    },
    // 获取缴费记录
    getPaymentRecords: (params) => {
      return api.get('/admin/finance/payment-records', { params })
    },
    // 获取财务统计
    getStatistics: () => {
      return api.get('/admin/finance/statistics')
    },
    // 导出财务报表
    exportReport: (params) => {
      return api.get('/admin/finance/export', { params, responseType: 'blob' })
    }
  },

  // 通知公告管理
  notices: {
    // 获取通知列表
    getList: (params) => {
      return api.get('/admin/notices', { params })
    },
    // 获取通知详情
    getDetail: (id) => {
      return api.get(`/admin/notices/${id}`)
    },
    // 创建通知
    create: (data) => {
      return api.post('/admin/notices', data)
    },
    // 更新通知
    update: (id, data) => {
      return api.put(`/admin/notices/${id}`, data)
    },
    // 删除通知
    delete: (id) => {
      return api.delete(`/admin/notices/${id}`)
    },
    // 发布通知
    publish: (id) => {
      return api.post(`/admin/notices/${id}/publish`)
    },
    // 下架通知
    unpublish: (id) => {
      return api.post(`/admin/notices/${id}/unpublish`)
    }
  }
}